package com.csc.contact.checkbill.mapper;

import com.csc.contact.checkbill.entity.UrpChargeinfo;
import com.hollycrm.hollybeacons.system.db.mybatis.support.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA
 *
 * @auther zhanglei
 * @date 2019/6/18 14:28
 * Description: 缴费扣费冲正mapper操作接口
 */

public interface UrpChargeinfoMapper extends BaseMapper<UrpChargeinfo> {
    /**
     * 根据业务流水号获取落地卡扣款状态
     *
     * @param cgiSerialNo
     * @return
     */
    UrpChargeinfo chargeInfoQueryByCgiSerialNo(String cgiSerialNo);

    List<UrpChargeinfo> chargeInfoQueryByBillDate(String billDate);

    int queryChargeCount(String cutofDay);


    /**
     * 更新枢纽未传缴费记录，将状态不是成功的改为失败
     * @param params
     */
    void updateChargeFailure(Map params);

    /**
     * 查询枢纽未传的缴费记录，且状态非成功的流水号
     * @param params
     */
    List<UrpChargeinfo> queryChargeFailure(Map params);

    /**
     * 枢纽无，缴费有，且缴费表状态为0成功，将其改为1失败
     * @param params
     */
    List<UrpChargeinfo> queryChargeZero(Map params);

    /**
     * 更新充值缴费状态与逻辑日
     * @param params
     */
    void updateChargeStatus(Map params);

    /**
     * 更新充值缴费记录表中的逻辑日
     * @param params
     */
    void updateCheckDay(Map params);

    /**
     *获取逻辑日中单一省份充值缴费成功的总记录数
     * @param params
     * @return
     */
    int queryCountByProvince(Map params);

    /**
     *获取逻辑日中单一省份成功充值缴费的总金额
     * @param params
     * @return
     */
    Integer querySumMoneyByProvince(Map params);

    /**
     * 根据发起地省份编码获取充值缴费记录表中成功的记录，写入文件返回给号卡
     * @param params
     * @return
     */
    List<UrpChargeinfo> queryChargeInfoByEntryProvince(Map params);

    /**
     * 保存充值记录信息
     * @param urpChargeinfo
     */
    void saveChargeinfo(UrpChargeinfo urpChargeinfo);
}
